package com.ldxiwxr.common.utils;

import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import com.ldxiwxr.common.common.New;
import org.apache.commons.lang3.StringUtils;

import java.util.ArrayList;
import java.util.List;

import static com.ldxiwxr.common.constant.CommonConstant.LOCAL_AREA_NETWORK;
import static com.ldxiwxr.common.constant.ExternalAPIConstant.*;

/**
 * 简单的外部API结果工具类
 * @author SuBanxia
 */
public class EasyAPIResultUtils {

    /**
     * 主页一言
     * @return String 一言结果
     */
    public static String YiYan(){
        try {
            String rspStr = HttpUtil.createGet(INDEX_YIYAN_API)
                    .execute()
                    .body();
            //判断返回对象是否为空
            if (StringUtils.isEmpty(rspStr)) {
                return null;
            }
            //返回内容
            return new JSONObject(rspStr).getJSONObject("data").getStr("content");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 获取新闻列表
     * */
    public static List<New> getNewList(){
        try {
            //发送请求
            String result = HttpUtil.createGet(NEWS_API_HTTP + "?key=" + NEWS_API_KEY + "&num=4")
                    .execute()
                    .body();

            //判断返回的结果是否为空
            if (StringUtils.isEmpty(result)){
                return null;
            }
            System.out.println(result);
            //将返回对象封装成json对象,并获取其中list对象
            JSONObject json = new JSONObject(result);
            JSONObject resultJson = json.getJSONObject("result");
            JSONArray list = resultJson.getJSONArray("newslist");

            //新建新闻list对象
            List<New> newList = new ArrayList<>();
            New news = null;

            //for循环给新闻列表赋值
            for (int i = 0; i < list.size(); i++) {
                //获取对应下标的内容
                JSONObject newContent = list.getJSONObject(i);
                //创建要闻对象
                news = new New();
                //给要闻对象赋值
                news.setTitle(newContent.getStr("title"));
                news.setCreateTime(newContent.getStr("ctime"));
                news.setDescription(newContent.getStr("description"));
                news.setUrl(newContent.getStr("url"));
                news.setSource(newContent.getStr("source"));
                //给list对象添加内容
                newList.add(news);
            }
            return newList;
        }catch (Exception e){
            e.printStackTrace();
        }
        return null;
    }

}
